Systems and methods for optimizing message notification timing based on geographic location

ABSTRACT

Systems and methods are provided for timing message notifications to be provided to mobile device users based on theft respective geographic locations with respect to a targeted content area. The timing of message notifications may be controlled in order to optimize the chances of delivering targeted content to a mobile device user based on the current geographic location of the user&#39;s device relative to a targeted content area. As the particular client application may not be actively executing at a time when the user&#39;s device happen to be located within a targeted content area, a general message notification sent to the user&#39;s device, which may be displayed at any time, may increase the likelihood that the user will launch the client application when it is not already executing at the device and thereby, allow targeted content to be delivered to the user&#39;s mobile device at the appropriate time and location.

TECHNICAL HELD

The present disclosure relates generally to location-based services formobile device users and, more particularly, to providing messagingservices to particular mobile device users based on their respectivegeographic locations.

BACKGROUND

Mobile devices, such as smartphones, now allow users to perform avariety of tasks that traditionally required different types of devices.For example, a user may be able to use different client applicationsexecutable at the same mobile device to browse online content, playaudio files, capture digital images, view directions for navigatingbetween different locations or points of interest, and exchange messagesbetween other users or computing devices via a mobile communicationnetwork. A user may also download and install various third-party clientapplications at the user's mobile device for viewing information andcontent related to general topics of interest. An application developeror affiliated service provider may use such a client application toprovide different services to the user. Such services may includemessaging services to which the user may subscribe in order to receive,for example, real-time message notifications or breaking news alerts atthe user's mobile device. The message notifications or alerts that aresent (or “pushed”) by a service provider for a particular clientapplication may be displayed within a general notifications window via auser interface of the operating system at the user's mobile device, eventhough the client application may be dosed or not be actively executingat the mobile device when such notifications are received.

In addition to the message notifications or alerts provided by a serviceprovider associated with the client application, third-party contentproviders may use the client application to deliver targeted content(e.g., advertisements) to the user at the mobile device. The targetedcontent that is sent to the user's mobile device at a particular timemay be based on, for example, the current geographic location of themobile device. The delivery of such geo-located content to the user'sdevice may be triggered when, for example, the location of the user'smobile device is determined to be within a designated geographic area,e.g., covered by a geo-fence associated with the targeted content.

In contrast with the aforementioned message notifications that may bedisplayed within a general notifications window of the operatingsystem's user interface, the targeted content from a third-party contentprovider is typically displayed within a dedicated portion of a userinterface of the client application itself while it executes at themobile device. An example of such targeted content may include, but isnot limited to, an advertisement displayed within a pop-up window for awebpage loaded within a mobile web browser. Thus, conventional solutionsfor delivering targeted content to a user's mobile device typicallyrequire the client application to be open or actively executing at themobile device in order for the content to be displayed to the user atthe mobile device. However, there may be only a slight chance that theclient application is actually open or executing at the user's devicewhen the user and mobile device are located within a designatedgeographical area for delivering targeted content. Hence, the contentdisplayed to the user when the client application is actually open andactively executing at the user's mobile device may not be the targetedcontent that is relevant to the user's current geographic location.Moreover, conventional solutions may not provide a way to delivergeo-located content that is relevant to the user's current geographiclocation to the user's device for display to the user at the device atthe appropriate time.

SUMMARY OF THE DISCLOSURE

Embodiments disclose systems and methods for timing messagenotifications so as to optimize the delivery of targeted content tomobile device users.

According to certain embodiments, methods are disclosed for timingmessage notifications to optimize delivery of targeted content to mobiledevice users. Upon receiving an indication of a message to be sent for aclient application executable at a mobile device of a user, a currentgeographic location of the mobile device is requested via acommunication network. Upon receiving the requested current geographiclocation of the mobile device, it is determined whether or not thecurrent geographic location of the mobile device is within apredetermined geographic area for providing targeted content to bedisplayed within a content view of the client application when theclient application is executing at the mobile device. The targetedcontent is unrelated to the message to be sent for the clientapplication. When the current geographic location of the mobile deviceis determined to be within the predetermined geographic area, themessage is sent for display to the user at the mobile device via amessage notification interface of an operating system of the mobiledevice. When the current geographic location of the mobile device isdetermined not to be within the predetermined geographic area, themessage is added to a message queue. The added message is to be sentfrom the message queue for display to the user at the mobile device wheneither a detected change in the current geographic location of themobile device is determined to be within the predetermined geographicarea before a predetermined period of time has elapsed or once thepredetermined period of time is determined to have elapsed.

According to certain embodiments, systems are disclosed for timingmessage notifications to optimize delivery of targeted content to mobiledevice users. One system includes a memory having processor-readableinstructions stored therein and a processor configured to access thememory and execute the processor-readable instructions, which whenexecuted by the processor configures the processor to perform aplurality of functions, including functions to: receive an indication ofa message to be sent for a client application executable at a mobiledevice of a user; request a current geographic location of the mobiledevice via a communication network based on the received indication;receive the requested current geographic location of the mobile device;determine whether or not the current geographic location of the mobiledevice is within a predetermined geographic area for providing targetedcontent to be displayed within a content view of the client applicationwhen the client application is executing at the mobile device, whereinthe targeted content is unrelated to the message to be sent for theclient application; send the message for display to the user at themobile device via a message notification interface of an operatingsystem of the mobile device when the current geographic location of themobile device is determined to be within the predetermined geographicarea; and add the message to a message queue when the current geographiclocation of the mobile device is determined not to be within thepredetermined geographic area, wherein the message is to be sent fromthe message queue for display to the user at the mobile device wheneither a detected change in the current geographic location of themobile device is determined to be within the predetermined geographicarea before a predetermined period of time has elapsed or once thepredetermined period of time is determined to have elapsed.

According to certain embodiments, a computer readable medium isdisclosed as storing instructions that, when executed by a computer,cause the computer to perform functions to: receive an indication of amessage to be sent for a client application executable at a mobiledevice of a user; request a current geographic location of the mobiledevice via a communication network based on the received indication;receive the requested current geographic location of the mobile device;determine whether or not the current geographic location of the mobiledevice is within a predetermined geographic area for providing targetedcontent to be displayed within a content view of the client applicationwhen the client application is executing at the mobile device, whereinthe targeted content is unrelated to the message to be sent for theclient application; send the message for display to the user at themobile device via a message notification interface of an operatingsystem of the mobile device when the current geographic location of themobile device is determined to be within the predetermined geographicarea; and add the message to a message queue when the current geographiclocation of the mobile device is determined not to be within thepredetermined geographic area, wherein the message is to be sent fromthe message queue for display to the user at the mobile device wheneither a detected change in the current geographic location of themobile device is determined to be within the predetermined geographicarea before a predetermined period of time has elapsed or once thepredetermined period of time is determined to have elapsed.

Additional objects and advantages of the disclosed embodiments will beset forth in part in the description that follows, and in part will beapparent from the description, or may be learned by practice of thedisclosed embodiments. The objects and advantages of the disclosedembodiments will be realized and attained by means of the elements andcombinations particularly pointed out in the appended claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the scope of disclosed embodiments, as setforth by the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various exemplary embodiments andtogether with the description, serve to explain the principles of thedisclosed embodiments.

FIG. 1 is a view of a map showing multiple geo-fenced areas forproviding targeted content to mobile device users determined to belocated within the respective geo-fenced areas;

FIG. 2 is a block diagram of an exemplary communication system suitablefor practicing an embodiment of the present disclosure;

FIG. 3 is a communication flow diagram of an exemplary process foroptimizing the timing of message notifications for a mobile device userbased on a current geographic location of the user's device relative toa predetermined targeted content area;

FIG. 4 is a communication flow diagram of an exemplary process foroptimizing the timing of message notifications for the mobile deviceuser of FIG. 3 based on a detected change in the current geographiclocation of the user's device relative to a predetermined targetedcontent area;

FIG. 5 is a process flow diagram of an exemplary method for optimizingthe timing of message notifications for a mobile device user based on acurrent geographic location of the user's device relative to apredetermined targeted content area;

FIG. 6 is a process flow diagram of an exemplary method for updatingtargeted content delivery statistics based on a recent messagenotification sent to the mobile device user of FIG. 5 within apredetermined period of time;

FIG. 7 is an exemplary table for associating different clientapplications with corresponding message queues; and

FIG. 8 is a block diagram of an exemplary computer system in whichembodiments of the present disclosure may be implemented.

DESCRIPTION OF THE EMBODIMENTS

The present disclosure is directed to overcoming one or more of theabove referenced issues. Specifically, the present disclosure isdirected to timing message notification in order to optimize the chancesof delivering targeted content to a mobile device user based on thecurrent geographic location of the user's mobile device relative to atargeted content area. In an example, an application developer oraffiliated information service provider, e.g., a news agency or othermedia outlet, associated with a client application may provide a mobilemessaging service, to which the user may subscribe so as to authorizethe service provider to send (e.g., “push”) real-time messagenotifications (e.g., breaking news or other alerts) to the user's devicevia a mobile communication network. The notifications sent by a serviceprovider associated with a client application executable at the user'sdevice may be displayed within a general notifications window of agraphical user interface (GUI) of the device's operating system, evenwhen the corresponding client application may not have been launched bythe user or be actively executing at the mobile device.

In the above example, an authorized third-party content provider mayalso use the client application to deliver targeted content to theuser's mobile device when the mobile device is determined to be within atargeted content area. The targeted content area may be, for example, apredetermined geographic area of any size and shape, e.g., as specifiedby the third-party content provider. The bounds of the geographic areamay be defined by, for example, a customized geo-fence or virtualperimeter surrounding a particular location or point of interest (POI)related to the targeted content. Accordingly, the delivery of targetedcontent, which may be relevant to a POI located near the user's currentgeographic location, may be triggered when the location of the user'smobile device is determined to be within the corresponding geo-fencedarea. Such targeted content is typically displayed within a designatedportion of the client application's own GUI as it executes at the user'sdevice, e.g., a banner advertisement presented in a bottom or topportion of the application's GUI (e.g., of a mobile browser) as it isdisplayed on a display screen of the user's device. Consequently, thetargeted content is generally delivered to the user's device only whenthe client application is actively executing at the device, e.g., afterthe user has manually launched the application for execution via a userinterface of the operating system at the mobile device.

It may be assumed that the mobile device user in the above example maybe relatively unaware of the third-party content provider. Thus, while auser who has subscribed to messaging services offered by a serviceprovider associated with a client application executable at the user'sdevice may have authorized the application service provider to sendgeneral message notifications (e.g., push notifications) related totopics of interest to the user's device, the user may not haveexplicitly requested third-party content providers to send targetedcontent to the user's device in the same way. However, it may also beassumed for purposes of this example that the user has at leastimplicitly requested or authorized third-party content providers (e.g.,with whom the application service provider may have entered into apartnership agreement) to deliver targeted content to the user's mobiledevice within a designated portion of the application's GUI while theclient application is actively executing at the user's device (e.g.,pursuant to terms and conditions of use accepted by the user).

As the particular client application may not be actively executing at atime when the user and device happen to be located within a targetedcontent area, the techniques disclosed herein may be used to increasethe likelihood that the user will launch the client application when itis not already executing at the device and thereby, allow targetedcontent that may be relevant to the user's current geographic locationto be delivered to the user's mobile device at the appropriate time. Aswill be described in further detail below, these techniques may be usedto control the timing of general message notifications to be sent to thedevice for a client application so as to increase the likelihood thatthe user will launch the client application and that it will be activelyexecuting at the user's device when the current geographic location ofthe mobile device is also within a targeted content area.

In an example, the delivery of a message notification associated with aclient application executable at the user's device may be delayed for apredetermined period of time or until the current geographic location ofthe user's mobile device is determined to be within the targeted contentarea. When the message notification is eventually delivered to theuser's mobile device and displayed within a general notifications windowof the operating system's GUI at the device, the user may be moreinclined to open the corresponding client application after viewing themessage notification. In other words, the user may be more likely tolaunch the client application corresponding to a message notification(e.g., a breaking news alert) displayed at the user's device afterviewing the message notification. In some implementations, the mobileoperating system may allow the user to launch the client applicationassociated with a particular notification directly from the notificationwindow by selecting the notification as it is displayed via theoperating system GUI at the mobile device. Thus, the techniquesdisclosed herein may be used to optimize the timing of the messagenotification displayed at the user's device so as to increase theprobability that the corresponding client application is activelyexecuting at the user's device when the device is also located within atargeted content area, e.g., by enticing the user to launch the clientapplication when it is inactive, after viewing the message notification.

Reference will now be made in detail to the exemplary embodiments of thedisclosure, examples of which are illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts.

FIG. 1 is a view of a map 100 showing multiple gee-fenced areas forproviding targeted content to mobile device users determined to belocated within the respective geo-fenced areas. As shown in FIG. 1, map100 includes a geo-fenced area 102 and a geo-fenced area 104. Each ofgeo-fenced areas 102 and 104 may be associated with one or morethird-party content providers. In an example, a third-party contentprovider may be, for example, a public or private organizationassociated with the geographic location of each of geo-fenced areas 102and 104. In addition, geo-fenced areas 102 and 104 may each correspondto, for example, the location of a venue, public landmark, commercialbusiness (e.g., a restaurant, store, etc.), or other POI associated withthe third-party content provider. Thus, the boundaries or dimensions ofeach of the geo-fenced areas 102 and 104 may correspond to, for example,the shape and size of a building or other physical structure associatedwith the organization (e.g., a restaurant, store, or other place ofbusiness). However, it should be noted that geo-fenced areas 102 or 104may be of any size and shape, as desired for a particularimplementation. For example, the size and shape of each geo-fenced areamay be based on a predetermined radius around a specified location orPOI.

Also, as shown in FIG. 1, map 100 indicates the geographic locations ofa user device 110 a a user device 110 b, and a user device 110 c. Eachof user devices 110 a, 110 b, and 110 c may be implemented using, forexample, any type of mobile computing device including, but not limitedto, a laptop computer, tablet computer, mobile handset, smartphone,personal digital assistant (PDA), a dedicated portable GlobalPositioning System (GPS) navigation device, or similar type of mobiledevice. Further, each of user devices 110 a, 110 b, and 110 c may beequipped with a GPS receiver for registering GPS location data, e.g.,latitude and longitude coordinates, at a particular point or over aperiod of time. However, it should be noted that the physical orgeographic location of each of user devices 110 a, 110 b, and 110 c maybe determined or estimated using any one or a combination of variouswell-known techniques for deriving such geographic location information.Examples of such techniques include, but are not limited to, GPS, cellidentification (e.g., using Cell ID), cellular tower triangulation,multilateration, Wi-Fi, and any other network or handset based techniquefor deriving or estimating the physical or geographic location of amobile device via a mobile communication network.

Each of user devices 110 a, 110 b and 110 c may be configured to executeone or more client applications. Such a client application executable ateach of user devices 110 a, 110 b, and 110 c may be associated with, forexample, an information service provider. Further, each of user devices110 a, 110 b, and 110 c may be configured to receive messagenotifications related to topics of interest (e.g., breaking news alerts)for a user at each device. As will be described in further detail below,such notifications may be sent to each of user devices 110 a, 110 b, and110 c by a message server via a mobile communications network. Themessage notifications may be sent by the message server as, for example,push notifications that are periodically sent to each device. However,it should be noted that the techniques disclosed herein are not limitedto push notifications and that these techniques may be applied with anytype of messaging scheme or protocol used to deliver messagenotifications to user devices 110 a, 110 b, and 110 c. For example, anyof user devices 110 a, 110 b, or 110 c may be configured to request (or“pull”) pending notification messages from the message server via themobile communication network.

As described above, the message notifications delivered to any of userdevices 110 a, 110 b, or 110 c for a particular client applicationexecutable at the device may be displayed within, for example, a generalnotifications window or similar type of user control element of a GUIprovided by a mobile operating system at the device, particularly whenthe client application has not been opened or launched by the user andthus, the client application is not actively executing at the user'sdevice. Also, as described above, the user of each device may havesubscribed to a service offered by an application service providerassociated with a client application executable at the user's device,which authorizes the application service provider to send relevantmessage notifications (e.g., as push notifications) to the user'sdevice.

While a particular client application may be associated with a serviceprovider that is unrelated to any of the third-party content providersassociated with each of geo-fenced areas 102 and 104, the applicationservice provider may have authorized each third-party content providerto provide targeted content for display within a designated portion ofthe client application's GUI as it executes at the device. Suchauthorization may be pursuant to, for example, a partnership oradvertising agreement between the application service provider and thethird-party content provider. Accordingly, the third-party contentprovider associated with geo-fenced area 102 may provide targetedcontent to user device 110 a via a mobile communication network, whenthe geographic location of mobile device 110 a is determined to bewithin geo-fenced area 102 and an eligible client application, e.g.,which may be associated with a service provider with whom thethird-party content provider has a partnership agreement in place, isactively executing at user device 110 a. Similarly, targeted contentassociated with geo-fenced area 104 may be provided to an appropriateclient application executing at user device 110 c, when user device 110c is determined to be within geo-fenced area 104. However, as describedabove, in some cases, the targeted content may be provided to each ofuser devices 110 a and 110 c only when the appropriate clientapplication in this example is actively executing at each of userdevices 110 a and 110 c.

In an example, a user of a client application executable at user device110 b may have subscribed to a messaging service provided by anapplication service provider associated with the client application inorder to receive push notifications related to topics or events ofinterest to the user. Such a messaging service may be hosted at amessage server associated with the client application or applicationservice provider. Additional details of such a message server will bedescribed in further detail below in reference to FIGS. 2-4. Examples ofdifferent push notifications that may be sent for the user at userdevice 110 b include, but are not limited to, news alerts related totopics or keywords previously specified by the user, system orservice-related message notifications, public safety advisories, andnotifications of comments or messages posted to an electronic messageboard by other users (e.g., members of a social networking groupassociated with the user of user device 110 b). The push notificationsmay be periodically sent by, for example, a messaging service of theapplication service provider to user device 110 b via a mobilecommunication network. The notifications received at user device 110 bmay be displayed in a general notifications window of a GUI provided bythe operating system of user device 110 b.

As indicated by map 100, the current geographic location of user device110 b in this example may not be within a designated targeted contentarea, e.g., corresponding to either of geo-fenced areas 102 or 104.Thus, upon determining that user device 110 b is not currently locatedwithin a targeted content area, the above-described messaging serviceprovided by the application service provider may add a new message to besent (or pushed) as a notification to user device 110 b to a messagequeue maintained by the message server. As will be described in furtherdetail below, the determination of whether or not a particulargeographic location corresponds to a targeted content area may be madeby a content server associated with a third-party content serviceprovider based on the current geographic location of user device 110 b.The current location of user device 110 b may be forwarded to thecontent server by an application server or message server associatedwith the application service provider

In some implementations, a message or message notification that may beadded to the message queue may be associated with an expiration timethat may be used to determine the period of time that the message willbe kept in the queue before being delivered to user device 110 b,regardless of the device's current geographic location. The expirationtime associated with a queued message may be based on, for example, apredetermined time period that reflects a priority level assigned to theparticular message notification. For example, an important publicadvisory message or breaking news alert may be assigned a relativelyhigh priority level, and therefore, be associated with a relativelyshort expiration time. Thus, such high priority message notificationsmay be kept in the queue for a relatively short time period oralternatively, be sent immediately to user device 110 b, without beingadded to the message queue.

In the above example, user device 110 b may be configured toperiodically report its current geographic location to the applicationor message server as this location changes over a period of time. Aswill be described in further detail below, upon receiving an indicationof a new or updated current geographic location of user device 110 b,the message server may query the appropriate third-party content serverto determine whether the updated geographic location is within atargeted content area. However, it should be noted that thisdetermination may be made by the application server or message serveritself, e.g., based on stored information identifying the locations andboundaries of various predetermined targeted content areas. It shouldalso be noted that the application server or message server maycommunicate with multiple third-party content servers, which may beassociated with different third-party content providers, via anelectronic communication network, as will be described in further detailbelow.

If it is determined that the updated geographic location of user device110 b is within a targeted content area, e.g., within geo-fenced area102 or geo-fenced area 104, the message server may check the messagequeue for any previously queued messages. The message server may thensend a message notification from the message queue to user device 110 b,upon finding at least one message in the message queue.

FIG. 2 is a block diagram of an exemplary communication system 200 forpracticing embodiments of the present disclosure. As shown in FIG. 2,system 200 includes user devices 210 a, 210 b, and 210 c, an applicationserver 230 coupled to a database 235, a message server 250 coupled to adatabase 255, and a content server 260 coupled to a database 265, all ofwhich may be communicatively coupled via an electronic communicationnetwork 220.

Network 220 may be any type of electronic network or combination ofnetworks used for communicating digital content and data between variouscomputing devices. Network 220 may include, for example, a local areanetwork, a medium area network, or a wide area network, such as theInternet. While only user devices 210 a, 210 b, and 210 c are shown inFIG. 2, system 200 may include any number of user devices. Similarly,while only application server 230, message server 240, and contentserver 250 are shown in FIG. 2, it should be understood that system 200may include additional or fewer servers, as desired for a particularimplementation. Further, while not shown in FIG. 2, network 220 mayinclude various switches, routers, gateways, or other types of networkdevices used to facilitate communication between various computingdevices via network 220.

In the example shown in FIG. 2, user device 210 a may be a laptop,notebook, netbook, or similar type of mobile computing device. Userdevice 210 b may be, for example, a tablet device or similar type ofmobile device having a touchscreen display. User device 210 c may be,for example, a mobile handset, smartphone, or personal digital assistant(“PDA”). However, it should be noted that each of user devices 210 a,210 b, and 210 c may be any type of mobile computing device configuredto send and receive different types of data including, but not limitedto, website data, multimedia content, electronic advertisements, and anyother type of digital information, over network 220. Examples of suchmobile computing devices include, but are not limited to, a laptopcomputer, a handheld computer, a personal digital assistant (PDA), acellular telephone, a network appliance, a camera, a smart phone, anenhanced general packet radio service (EGPRS) mobile phone, a mediaplayer, a navigation device, a portable game console, or any combinationof these computing devices or other types of mobile computing deviceshaving at least one processor, a local memory, a display, one or moreuser input devices, and a network communication interface. The userinput device(s) may include any type or combination of input/outputdevices, such as a display monitor, touchpad, touchscreen, microphone,camera, keyboard, and/or mouse.

Each of application server 230, message server 240, and content server250 may be any of various types of servers including, but not limitedto, a web server, a proxy server, a network server, or other type ofserver configured to exchange electronic information with other serversor computing devices via a communication network, e.g., network 220.Such a server may be implemented using any general-purpose computercapable of serving data to other computing devices including, but notlimited to, user devices 210 a, 210 b, and 210 c or any other computingdevice (not shown) via network 220. Such a server may include, forexample and without limitation, a processor and memory for executing andstoring processor-readable instructions, The memory may include any typeof random access memory (RAM) or read-only memory (ROM) embodied in aphysical storage medium, such as magnetic storage including floppy disk,hard disk, or magnetic tape; semiconductor storage such as solid statedisk (SSD) or flash memory; optical disc storage; or magneto-opticaldisc storage. Software may include one or more applications and anoperating system. Hardware can include, but is not limited to, aprocessor, memory and graphical user interface display. The server mayalso be implemented using multiple processors and multiple shared orseparate memory devices within, for example, a clustered computingenvironment or server farm.

Also, as shown in FIG. 2, application server 230, message server 240,and content server 250 are communicatively coupled to databases 235,245, and 255, respectively. Each of databases 235, 245, and 255 may be adata store or memory accessible to the corresponding server and may beimplemented using any type of data storage device or recording mediumused to store various kinds of data or content. Such data or content mayinclude, for example and without limitation, text or media content thatmay be later provided to each of user devices 210 a, 210 b, and 210 cvia network 220.

In an example, each of user devices 210 a, 210 b, and 210 c may executea client application that communicates with application server 230,message server 240, or content server 250 via network 220. Further, eachof user devices 210 a, 210 b and 210 c may be configured to receiveapplication content through an interface provided by application server230 via network 220. The content provided by application server 230 maybe based on, for example, user requests initiated via a GUI of theclient application executable at each device. The GUI of the clientapplication executable at each of user devices 210 a, 210 b, and 210 cmay be configured to present the content to a user at each device via adisplay of the respective user devices 210 a, 210 b, and 210 c. The GUIof the client application may include, for example, various controlelements enabling the user to request various types of content, e.g.,which may be associated with a web site maintained by the applicationservice provide. Further, a portion of the GUI of the client applicationmay serve as a content view area used to display content (e.g.,electronic advertisements) from a third-party content providerassociated with content server 250. Such a content view of the clientapplication may be a dedicated content area, e.g., displayed at the verytop or bottom portion, of the application's GUI. As described above,such third-party content, e.g., as provided by content server 250 vianetwork 220, may be displayed within the content view of the clientapplication when the client application is actively executing at userdevice 210 a, 210 b, or 210 c. Also, as described above, suchthird-party content may be different from the messages sent by anapplication provider for display to the user via a general messagenotifications interface of the operating system at user device 210 a,210 b, or 210 c, even when the client application is dormant or notactively executing at the particular device.

Application server 230 may be configured to host a web service thatprovides users various types of functionality via a GUI of the clientapplication executable at each of user devices 210 a, 210 b and 210 c.Such functionality may include, for example and without limitation,providing digital content distributed by an application service providerassociated with the client application. The application service providermay be, for example, an online content provider, including thoseassociated with various search engines, e-mail programs, RSS feedproviders, magazines, e-zines, blogs, or any other online site orprogram that publishes or distributes online content related to, forexample, news or various topics of general public interest. As describedabove, a functionality provided by such an application service providermay include sending messages, e.g., push notifications, related totopics of interest, as specified by a user/subscriber of each userdevice. Also, as described above, the messages sent to each device maybe displayed for the user via a message notifications interface of amobile operating system at each of user devices 210 a, 210 b, and 210 cif, for example, the client application has not been launched by theuser or is not actively executing at the user's device.

Further, application server 230 and message server 240 may be configuredto communicate with content server 250 or one or more other third-partycontent servers (not shown) to retrieve content (e.g., electronicadvertisements) via network 220 to be displayed within a content view ofa client application executable at each of user devices 210 a, 210 b,and 210 c. Further, application server 230, message server 240, andcontent server 250 may each interact with one another, user devices 210a, 210 b, or 210 c or any other servers or network devices (not shown)via network 220. Examples of such other servers include, but are notlimited to, DNS servers, ad servers, and content distribution servers.

Message server 240 in this example may be configured to control thetiming of messages or push notifications to be sent via network 220 toeach of user devices 210 a, 210 b, and 210 c based on the currentgeographic location of each device relative to one or more predeterminedgeographic areas for delivering targeted content for display to a userat each device, e.g., geo-fenced areas 102 and 104, as described above.In an example, message server 240 may delay the sending of a messagewhen the current geographic location of the device is determined not tobe located within at least one of these targeted content areas. As willbe described in further detail below, message server 240 may add themessage to a message queue for the client application. Message server240 may be configured to send the message from the message queue to userdevice 210 a, 210 b, or 210 c via network 220, upon receiving anindication of an updated current geographic location of the device anddetermining that the new or updated location corresponds to a targetedcontent area.

In an example, message server 240 may communicate with content server250 to determine whether or not the current geographic location of userdevice 210 a, 210 b, or 210 c is within a targeted content area, asdescribed above and as will be described in further detail below.Content server 250 may be configured to receive a request including thecurrent geographic location of user device 210 a, 210 b, or 210 c frommessage server 240 and send an appropriate response to message server240 after determining whether the received geographic locationcorresponds to at least one targeted content area. Such a targetedcontent area may be one of a plurality of different targeted contentareas corresponding to various predetermined geographic areas forproviding targeted or geo-located content to mobile device users wheneach user's mobile device is determined to be located within any of thepredetermined areas. As described above, the targeted content deliveredto a user's device may be relevant to a particular location or POIassociated with the predetermined geographic area. Further, the deliveryof such targeted content may be triggered when the user's mobile deviceis detected within the boundary of a geo-fence corresponding to thepredetermined geographic area.

In some implementations, message server 240 may be implemented as aback-end component that interfaces with only application server 230 andcontent server 250. Thus, it should be noted that for someimplementations, message server 240 may be configured to act as anintermediary between application server 230 and content server 250,without any direct communication with any of user devices 210 a, 210 b,or 210 c, in order to facilitate the message notification timingfunctionality described herein. Accordingly, application server 230,message server 240, and content server 250 may be configured to exchangeinformation in the form of messages, requests, or responses that arepassed between the servers. The communication between application server230, message server 240, and content server 250 may be over network 220or a virtual private network accessible to each server. In an example,messages added to the message queue may be routed from message server240 to application server 230, when it is determined that user device210 a, 210 b, or 210 c is located within a targeted content area.Application server 230 may then send the routed message to user device210 a, 210 b, or 210 c via network 220. However, it should be noted thatthe functions performed by application server 230, message server 240,content server 250 or any combination thereof, as described herein, maybe implemented using a single server. Additional features andcharacteristics of the communication between user devices 210 a, 210 b,and 210 c, application server 230, message server 240, and contentserver 250 will be described in further detail below with respect toFIGS. 3 and 4.

FIG. 3 is a communication flow diagram of an exemplary process 300 foroptimizing the timing of message notifications for a mobile device userbased on a current geographic location of the user's device relative toa targeted content area, as described above. The example shown in FIG. 3illustrates the communication flow between a user device 310, anapplication server 330, a message server 340, and a content server 350.For purposes of discussion, process 300 will be described using map 100of FIG. 1 and system 200 of FIG. 2, as described above, but process 300is not intended to be limited thereto. Thus, user device 310 may beimplemented using, for example, any of user devices 210 a, 210 b, or 210c of FIG. 2, as described above. Similarly, application server 330,message server 340, and content server 350 may be implemented using, forexample, application server 230, message server 240, and content server250, respectively, as described above.

As shown in FIG. 3, application server 330 may send a new messagenotification request for a client application executable at user device310 to message server 340 via a communication network, e.g., network 220of FIG. 2, as described above (step 301). Message server 340 may in turnrequest a current geographic location of user device 310 (step 302). Therequest may be sent by message server 340 directly to user device 310,as shown in FIG. 3, or alternatively, message server 340 may send therequest to application server 330, which may then request the geographiclocation information from user device 310, if necessary. In someimplementations, application server 330 may respond to the request frommessage server 340 by sending a last known or previously determined orestimated geographic location of user device 310, e.g., which may bestored in a memory or data store (e.g., database 235 of FIG. 2, asdescribed above) coupled to application server 330. Accordingly, userdevice 310 may send the requested location data (or current geographiclocation information) to message server 340 (step 303), or to whicheverserver (e.g., application server 330) may have requested the informationfrom user device 310.

Message server 340 may be configured to query content server 350 todetermine whether or not the current geographic location of user device310 is within a targeted content area, as described above (step 304).Content server 350 may then determine if the current location of userdevice 310, as forwarded by message server 340, corresponds to at leastone targeted content area and send the result of the determination tomessage server 340 (step 305). Such a targeted content area maycorrespond to, for example, a predetermined geographic area bounded by avirtual perimeter of a geo-fence, as described above. Further, thetargeted content area may be one of many targeted content areascorresponding to different geo-fenced areas, e.g., geo-fenced areas 102and 104 of FIG. 1, as described above. If the current geographiclocation of user device 310 is determined (e.g., by content server 350)to be within a targeted content area, message server 340 may send themessage notification to user device 310 for display to the user at userdevice 310 via a general notifications interface of the operating systemof user device 310, as described previously (step 306). Alternatively,if the device's location is determined not to be within a targetedcontent area, the message may be added to a message queue to be sent ata later time, as described above.

It should be noted that in some implementations, the determination ofwhether the device's location corresponds to a targeted content area maybe performed by message server 340 itself, e.g., based on informationspecifying one or more targeted content areas associated with theparticular client application executable at user device 310. Suchinformation may be stored within a memory or data store (e.g., database245 of FIG. 2) coupled to message server 340, as described above.

FIG. 4 is a communication flow diagram of an exemplary process 400 foroptimizing the timing of message notifications for the user of mobiledevice 310 of FIG. 3, as described above, based on a detected change inthe current geographic location of the user's device relative to apredetermined targeted content area. As shown in FIG. 4, the detectedchange in location may be based on, for example, an updated currentgeographic location sent by user device 310 or an operating systemthereof to application server 330 via a network, e.g., network 220 ofFIG. 2, as described above (step 401).

Application server 330 may then notify message server 340 of the updatedgeographic location information received from user device 310 (step402). In response to the notification from application server 330,message server 340 may query content server 350 as to whether theupdated current location of user device 310 is within a targeted contentarea (step 403). The results of the determination may be sent in aresponse from content server 350 to message server 340 (step 404). Ifthe response from content server 350 indicates that the updated locationis within a targeted content area, message server 340 may check amessage queue associated with the particular client applicationexecutable at user device 310 to determine if there are any pendingmessage notifications within the queue that need to be sent to userdevice 310, e.g., as added previously by message server 340 (at step 306of process 300 of FIG. 3, as described above). Message server 340 maysend the message to user device 310 via a communication network, e.g.,network 220 of FIG. 2 (step 405), only if a message is found within themessage queue or do nothing otherwise.

If message server 340 in this example finds multiple messages within themessage queue for the client application, message server 340 may beconfigured to select the appropriate message to send to user device 310using any one of various priority schemes as desired for a particularimplementation. Examples of such priority schemes include, but are notlimited to, first-in-first-out (FIFO), last-in-first-out (LIFO), or analternative scheme based on message priority. In an example, thepriority scheme may be based on an expiration time associated with eachmessage added to the message queue. The expiration time may be used todetermine the maximum period of time that a message should be held inthe message queue prior to being delivered to user device 310. In someimplementations, the expiration time may reflect a priority levelassigned to the message, e.g., by the application service providerassociated with the client application, as described above.

FIG. 5 is a process flow diagram of an exemplary method 500 foroptimizing the timing of message notifications for a mobile device userbased on a current geographic location of the user's device relative toa predetermined targeted content area. For purposes of discussion,method 500 will be described using system 200 of FIG. 2 and thecomponents of processes 300 and 400 of FIGS. 3 and 4 (includingapplication server 330, message server 340, and content server 350), asdescribed above, but method 500 is not intended to be limited thereto.As shown in FIG. 5, method 500 includes steps 502, 504, 506, 508, 510,512, 514, 516, 518 520, and 522. However, it should be noted that method500 may include more or fewer steps as desired for a particularimplementation. In an example, one or more of the above-listed steps ofmethod 500 may be executed by message server 240 of FIG. 2 or messageserver 340 of FIGS. 3 and 4, as described above. However, method 500 isnot intended to be limited thereto, and the steps of method 500 may beperformed by any server (e.g., application server 230 of FIG. 2 orapplication server 330 of FIGS. 3 and 4) or other type of computingdevice having at least one processor, a memory, and a networkcommunication interface for sending and receiving information from oneor more user devices.

Method 500 begins in step 502, which includes receiving a messagenotification for a client application executable at a user's mobiledevice (e.g., user device 210 of FIG. 2 or user device 310 of FIGS. 3and 4, as described above). In step 504, a current geographic locationof the mobile device is requested and received from the mobile device.Steps 506 and 508 may include, for example, determining whether acurrent geographic location of the mobile device is within a targetedcontent area. In some implementations, this determination may be basedon a response received from querying a content server (e.g., contentserver 250 of FIG. 2 or content server 350 of FIGS. 3 and 4) using thegeographic location information received from the user's mobile device.If it is determined in step 508 that the current geographic location ofthe mobile device is within a targeted content area, method 500 mayproceed to step 510, which includes sending a message from a messagequeue to the mobile device. Once the message has been sent, method 500may proceed to step 602 of method 600 of FIG. 6, as will be described infurther detail below.

It should be noted that step 510 may also include first checking themessage queue to determine whether or not it includes any pendingmessages to be sent to the mobile device for the particular clientapplication. The message queue in this example may be associated withthe particular client application. In an example, an association betweena queue of messages and a unique identifier associated with the clientapplication may be maintained, e.g., by message server 240 of FIG. 2 ormessage server 340 of FIGS. 3 and 4, as described above. FIG. 7 shows anexemplary table 700 that may be used for associating different clientapplications, represented by corresponding client applicationidentifiers 702 and their respective message queues 704. As shown intable 700, each message that is added to a message queue associated witha client application may include an expiration time used to determinethe maximum amount of time that the message may be kept in the queuebefore being sent to the user's device, regardless of its currentgeographic location, as described above. Table 700 may be stored withina database (e.g., database 245 of FIG. 2) coupled to the server in thisexample.

However, if it is determined in step 508 that the current geographiclocation of the mobile device is not within a targeted content area,method 500 may proceed to step 512, which includes determining orcalculating an expiration time associated with the message. In anexample, the expiration time for a message may be based on a prioritylevel assigned to the message, e.g., by an application service providerassociated with the client application, as described above. Thus, amessage having a relatively higher priority level may be assigned arelatively shorter expiration time, e.g., starting from the time thatthe message was added to the queue. In step 514, the message is addedwith the expiration time to the appropriate message queue. Method 500then proceeds to step 516, which includes waiting for a predeterminedevent to be triggered or the expiration time of the message to elapse.An example of such a predetermined event includes, but is not limitedto, receiving a notification of an updated or detected change in currentgeographic location for the mobile device.

If it is determined in step 518 that the expiration time for the messagehas elapsed, method 500 proceeds to step 510, in which the message issent from the message queue to the user's mobile device. Otherwise,method 500 proceeds to step 520, which may include receiving anotification of an updated geographic location of the mobile device,e.g., a type of predetermined event trigger described above with respectto step 516. In step 522, it is determined whether or not the updatedgeographic location of the mobile device is within a targeted contentarea, e.g., either the same or different targeted content area used toprovide targeted content for the particular client application. In anexample, the aforementioned server may store an association between eachof various client applications executable at the user's device and oneor more targeted content areas corresponding to each client application.Such information may be stored within a table, for example, table 700 ofFIG. 7, as described above, along with the message queue and expirationtime information.

As described above, method 500 may proceed to step 602 of method 600after a queued message is sent to the user's mobile device in step 510.As shown by the example of FIG. 6, the steps of method 600 may be usedfor updating targeted content delivery statistics based on the messagenotification sent previously to the user's mobile device, as describedabove. In an example, the statistics may be updated for a particularmessage only within a predetermined period of time after the message wassent. Such a predetermined time period may be based on, for example, theexpiration time associated with the message, as described above.

Like method 500, method 600 will be described using system 200 of FIG. 2and the components of processes 300 and 400 of FIGS. 3 and 4, asdescribed above, for discussion purposes only, but method 600 is notintended to be limited thereto. As shown in FIG. 6, method 600 includessteps 602, 604, 606, 608, 610, and 612. However, it should be noted thatmethod 500 may include more or fewer steps as desired for a particularimplementation. In an example, one or more of the above-listed steps ofmethod 600 may be executed by message server 240 of FIG. 2 or messageserver 340 of FIGS. 3 and 4, as described above. However, method 600 isnot intended to be limited thereto, and the steps of method 500 may beperformed by any server (e.g., application server 230 of FIG. 2 orapplication server 330 of FIGS. 3 and 4) or other type of computingdevice having at least one processor, a memory, and a networkcommunication interface for sending and receiving information from oneor more user devices.

Method 600 begins in step 602, which includes storing informationrelated to the targeted content area, which may have been previouslyidentified based on the current geographic location of the mobiledevice, e.g., as determined by the message and/or content serverspursuant to steps 506 and 508 of method 500 of FIG. 5, a describedabove. Step 602 may also include storing a record of the time that themessage was sent from the message queue (e.g., in step 510 of method500), also referred to herein as the “message send time.”

Method 600 then proceeds to step 604, which includes receiving anotification of a targeted content request initiated by the clientapplication at the user's mobile device. In step 606, the storedinformation relating to the targeted content area and message send timefor the previously sent message is retrieved for the client applicationfrom a memory device or data store (e.g., database 245 of FIG. 2). Theretrieved information may then be used to determine whether or not thecontent request initiated by the client application corresponds to thesame client application (e.g., based on a unique application identifierstored for the client application) executable at the same user device(e.g., based on a separate device identifier stored for the particularuser device), which is located within the same targeted content areaidentified previously. However, it is first determined in step 608whether or not the notification of the initiated targeted contentrequest is received within the predetermined time period of the messagesend time, as described above. If the notification is determined to bereceived within the predetermined time period, method 600 proceeds tostep 610, in which it is further determined whether or not the currentlocation of the mobile device is within the same targeted area.

If the mobile device is determined to be within the same targetedcontent area, method 600 proceeds to step 612, in which a set oftargeted notification statistics (e.g., a success rate) for the clientapplication may be updated (e.g., increased or incremented by somepredetermined value). In an example, the success rate may indicate alikelihood that targeted content would be delivered for the clientapplication at the user's device, as a result of the messagenotification timing functionality described herein, e.g., which may haveenticed the user at the mobile device to launch and therefore activelyexecute at the user's device, as previously described.

However, if either the request is determined not to have been initiatedby the client application within the predetermined time period (in step608) or the current location of the mobile device is determined not tobe within the same targeted content area (in step 610), method 600proceeds to step 614, which also includes updating the targetednotifications statistics for the client application, except that afailure rate is updated (e.g., increased or incremented by somepredetermined value). The failure rate may therefore indicate thelikelihood that targeted content would not be delivered to the clientapplication at the user's device, or that the user would not launch theclient application upon seeing the message notification sent to theuser's device (e.g., in step 510 of method 500 of FIG. 5).

FIG. 8 provides a high-level functional block diagram illustrating anexemplary general purpose computer 800. Computer 800 may be used toimplement, for example, any of application server 230, message server240, or content server 250 of FIG. 2 in addition to application server330, message server 340, or content server 350 of FIGS. 3 and 4, asdescribed above. It is believed that those skilled in the art arefamiliar with the structure, programming and general operation of suchcomputer equipment and as a result the drawings should beself-explanatory.

In an example, computer 800 may represent a computer hardware platformfor a server or the like. Accordingly, computer 800 may include, forexample, a data communication interface for packet data communication860. The platform may also include a central processing unit (CPU) 820,in the form of one or more processors, for executing programinstructions. The platform typically includes an internal communicationbus 810, program storage and data storage for various data files to beprocessed and/or communicated by the platform such as ROM 830 and RAM840, although the computer 800 often receives programming and data vianetwork communications 870. The hardware elements, operating systems andprogramming languages of such equipment are conventional in nature, andit is presumed that those skilled in the art are adequately familiartherewith. Computer 800 also may include input and output ports 850 toconnect with input and output devices such as keyboards, mice,touchscreens, monitors, displays, etc. Of course, the various serverfunctions may be implemented in a distributed fashion on a number ofsimilar platforms, to distribute the processing load. Alternatively, theservers may be implemented by appropriate programming of one computerhardware platform.

Program aspects of the technology may be thought of as “products” or“articles of manufacture” typically in the form of executable codeand/or associated data that is carried on or embodied in a type ofmachine readable medium. “Storage” type media include any or all of thetangible memory of the computers, processors or the like, or associatedmodules thereof, such as various semiconductor memories, tape drives,disk drives and the like, which may provide non-transitory storage atany time for the software programming. All or portions of the softwaremay at times be communicated through the Internet or various othertelecommunication networks. Such communications, for example, may enableloading of the software from one computer or processor into another, forexample, from a management server or host computer of the mobilecommunication network into the computer platform of a server and/or froma server to the mobile device. Thus, another type of media that may bearthe software elements includes optical, electrical and electromagneticwaves, such as used across physical interfaces between local devices,through wired and optical landline networks and over various air-links.The physical elements that carry such waves, such as wired or wirelesslinks, optical links or the like, also may be considered as mediabearing the software. As used herein, unless restricted tonon-transitory, tangible “storage” media, terms such as computer ormachine “readable medium” refer to any medium that participates inproviding instructions to a processor for execution.

The many features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended by the appended claimsto cover all such features and advantages of the disclosure which fallwithin the true spirit and scope of the disclosure. Further, sincenumerous modifications and variations will readily occur to thoseskilled in the art, it is not desired to limit the disclosure to theexact construction and operation illustrated and described, andaccordingly, all suitable modifications and equivalents may be resortedto, falling within the scope of the disclosure.

Other embodiments of the disclosure will be apparent to those skilled inthe art from consideration of the specification and practice of theinvention disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritof the invention being indicated by the following claims.

1-20. (canceled)
 21. A computer-implemented method for timing locationdeterminations, the method comprising: determining whether a currentgeographic location of a mobile device is within a predeterminedgeographic area; storing, when the current geographic location of themobile device is determined to be within the predetermined geographicarea, information identifying when the mobile device was determined tobe within the predetermined geographic area; receiving a request fortargeted content initiated by a client application at the mobile device;and determining whether the request was initiated by the clientapplication within a predetermined time period of the stored locationtime.
 22. The method of claim 21, further comprising: determining, uponreceiving an updated current geographic location of the mobile device,whether the updated current geographic location of the mobile device iswithin the predetermined geographic area; and transmitting, the targetedcontent when the updated geographic location of the mobile device isdetermined to be within the predetermined geographic area.
 23. Themethod of claim 21, wherein determining whether the current geographiclocation of the mobile device is within the predetermined geographicarea comprises: transmitting a request including the current geographiclocation of the mobile device to a content server that is configured todetermine whether the current geographic location of the mobile devicecorresponds to the predetermined geographic area; and receiving aresponse from the content server indicating whether the currentgeographic location of the mobile device is within the predeterminedgeographic area based on the determination by the content server. 24.The method of claim 21, wherein the targeted content is an electronicadvertisement provided by a third-party content provider that is notdirectly associated with a client application executable at a mobiledevice of a user.
 25. The method of claim 21, wherein the predeterminedperiod of time is based on an expiration time associated with a messagethat is added to a message queue, and the message is sent from themessage queue for display on a mobile device of a user when at least oneof (i) the current geographic location of the mobile device is laterdetermined to be within the predetermined geographic area before theexpiration time has elapsed, and (ii) once the expiration time for themessage is determined to have elapsed.
 26. The method of claim 25,wherein the expiration time associated with the message is based on apriority level assigned to the message by an application serviceprovider associated with a client application.
 27. A system for timinglocation determinations, the system comprising: a memory havingprocessor-readable instructions stored therein; and a processor thataccesses the memory and executes the processor-readable instructions,which when executed by the processor configures the processor to performa plurality of functions, including functions to: determine whether acurrent geographic location of a mobile device is within a predeterminedgeographic area; store, when the current geographic location of themobile device is determined to be within the predetermined geographicarea, information indicating when the mobile device was determined to bewithin the predetermined geographic area; receive a request for targetedcontent initiated by a client application at the mobile device; anddetermine whether the request for targeted content was initiated by theclient application within a predetermined time period of the storedlocation time.
 28. The system of claim 27, wherein the processor isfurther configured to perform functions to: determine, upon an updatedcurrent geographic location of the mobile device, whether the updatedcurrent geographic location of the mobile device is within thepredetermined geographic area; and transmit the targeted content whenthe updated geographic location of the mobile device is determined to bewithin the predetermined geographic area.
 29. The system of claim 27,wherein determining whether the current geographic location of themobile device is within the predetermined geographic area comprises:transmit a request including the current geographic location of themobile device to a content server that is configured to determinewhether the current geographic location of the mobile device correspondsto the predetermined geographic area; and receive a response from thecontent server indicating whether the current geographic location of themobile device is within the predetermined geographic area based on thedetermination by the content server
 30. The system of claim 27, whereinthe targeted content is an electronic advertisement provided by athird-party content provider that is not directly associated with aclient application executable at a mobile device of a user.
 31. Thesystem of claim 27, wherein the predetermined period of time is based onan expiration time associated with a message that is added to a messagequeue, and the message is sent from the message queue for display on athe mobile device when at least one of (i) the current geographiclocation of the mobile device is later determined to be within thepredetermined geographic area before the expiration time has elapsed,and (ii) once the expiration time for the message is determined to haveelapsed.
 32. The system of claim 31, wherein the expiration timeassociated with the message is based on a priority level assigned to themessage by an application service provider.
 33. A non-transitorycomputer readable medium storing instructions that, when executed by acomputer, cause the computer to perform functions to: determine whethera current geographic location of a mobile device is within apredetermined geographic area; store, when the current geographiclocation of the mobile device is determined to be within thepredetermined geographic area, information indicating when the mobiledevice was determined to be within the predetermined geographic area;receive a request for targeted content initiated by a client applicationat the mobile device; and determine whether the request for targetedcontent was initiated by the client application within a predeterminedtime period of the stored location time.
 34. The computer-readablemedium of claim 33, wherein the computer is further caused to performfunctions to: determine, upon receiving an updated current geographiclocation of the mobile device, whether the updated current geographiclocation of the mobile device is within the predetermined geographicarea; and transmit the targeted content when the updated geographiclocation of the mobile device is determined to be within thepredetermined geographic area.
 35. The computer-readable medium of claim33, wherein determining whether the current geographic location of themobile device is within the predetermined geographic area comprises:transmitting a request including the current geographic location of themobile device to a content server that is configured to determinewhether the current geographic location of the mobile device correspondsto the predetermined geographic area; and receiving a response from thecontent server indicating whether the current geographic location of themobile device is within the predetermined geographic area based on thedetermination by the content server.
 36. The computer-readable medium ofclaim 33, wherein the targeted content is an electronic advertisementprovided by a third-party content provider that is not directlyassociated with a client application executable at a mobile device of auser.
 37. The computer-readable medium of claim 33, wherein thepredetermined period of time is based on an expiration time associatedwith a message that is added to a message queue, and the message is sentfrom the message queue for display on a mobile device of a user when atleast one of (i) the current geographic location of the mobile device islater determined to be within the predetermined geographic area beforethe expiration time has elapsed, and (ii) once the expiration time forthe message is determined to have elapsed.
 38. The computer-readablemedium of claim 37, wherein the expiration time associated with themessage is based on a priority level assigned to the message by anapplication service provider associated with a client application.